home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 2 / Amiga Tools 2.iso / tools / packer / tar / src / dirent.h < prev    next >
C/C++ Source or Header  |  1995-03-09  |  899b  |  40 lines

  1. /*
  2.  * dirent.h for AmigaDOS - derived from an old document written by Doug Gwyn
  3.  *
  4.  * $Header$
  5.  */
  6. #include <sys/types.h>
  7. #include <libraries/dosextens.h>
  8. #include <proto/dos.h>
  9.  
  10. #define MAXNAMELEN    108        /* space in FIB for name */
  11.  
  12. #ifndef NAME_MAX
  13. #define NAME_MAX    (MAXNAMELEN - 1)
  14. #endif
  15.  
  16. struct dirent  {
  17.     long        d_ino;
  18.     off_t        d_off;
  19.     unsigned short    d_reclen;
  20.     char        d_name[1];
  21. };
  22.  
  23. typedef struct  {
  24.     struct dirent    *dd_dirent;    /* ok to reuse this over and over */
  25.     struct FileLock    *dd_lock;
  26.     struct FileInfoBlock    *dd_fib;
  27.     int        dd_loc;
  28. } DIR;
  29.  
  30. #define DIRENTBASESIZ    (&((struct dirent *) 0)->d_name \
  31.             - (char *) &((struct dirent *) 0)->d_ino)
  32. #define    DIRENTSIZ(namelen)    ((DIRENTBASESIZ + sizeof(long) + (namelen)) \
  33.                 / sizeof(long) * 4)
  34.  
  35. DIR    *opendir(char *dirname);
  36. struct dirent    *readdir(DIR *dirp);
  37. off_t    telldir(DIR *dirp);
  38. void    seekdir(DIR *dirp, off_t loc);
  39. void    rewinddir(DIR *dirp);
  40.